ヒストグラム¶
データのばらつきを見たい場合は,ヒストグラムを利用します.
環境構築¶
# Notebook初期設定
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
import warnings
warnings.filterwarnings('ignore')
import os
import pandas as pd
import plotly.express as px
DIR_IN = '../data/preprocess/out'
FN_WJ = 'wj.csv'
RENDERER = 'plotly_mimetype+notebook'
関数¶
def show_fig(fig):
"""Jupyter Bookでも表示可能なようRendererを指定"""
fig.show(renderer=RENDERER)
データの読み込み¶
df = pd.read_csv(os.path.join(DIR_IN, FN_WJ))
df.head(2).T
| 0 | 1 | |
|---|---|---|
| cid | C89412 | C89712 |
| creator | 永井豪とダイナミックプロ | ちばてつや |
| note | 4色カラー | NaN |
| epname | 赤い嵐の巻 | 盗まれた金の巻 |
| pageStart | 7.0 | 39.0 |
| pageEnd | 37.0 | 53.0 |
| miid | M544830 | M544830 |
| cname | ハレンチ学園 | モサ |
| miname | 週刊少年ジャンプ 1969年 表示号数20 | 週刊少年ジャンプ 1969年 表示号数20 |
| datePublished | 1969-11-03 | 1969-11-03 |
| mcid | C119459 | C119459 |
| issueNumber | 24 | 24 |
| numberOfPages | 296.0 | 296.0 |
| publisher | 集英社 | 集英社 |
| volumeNumber | 2 | 2 |
| price | 90.0 | 90.0 |
| editor | 長野規 | 長野規 |
掲載作品数の分布¶
掲載作品数の分布を見てみます.
df_tmp = df.value_counts('datePublished').reset_index()
df_tmp.columns = ['date', '掲載作品数']
fig = px.histogram(df_tmp, x='掲載作品数')
show_fig(fig)
最小で12,最大で57の漫画作品が掲載されており,
掲載数16および20にピークがある
ことがわかります.
掲載作品数が少ないのは,
df_tmp.sort_values('掲載作品数').head()
| date | 掲載作品数 | |
|---|---|---|
| 2337 | 1974-04-15 | 12 |
| 2324 | 1976-01-05 | 12 |
| 2325 | 1971-08-30 | 12 |
| 2326 | 1971-04-05 | 12 |
| 2327 | 1974-12-30 | 12 |
過去の巻号が多そうです.そこで,subplotを使って年代ごとにヒストグラムを描いてみます.
df_tmp['year'] = pd.to_datetime(df_tmp['date']).dt.year
df_tmp['year_10'] = df_tmp['year'] // 10 * 10 # 10年刻み
year_10s = sorted(df_tmp['year_10'].unique())
fig = px.histogram(df_tmp, x='
df_tmp['year'] // 10 * 10
0 2010
1 2010
2 2010
3 2010
4 2000
...
2333 1970
2334 1970
2335 1970
2336 1970
2337 1970
Name: year, Length: 2338, dtype: int64
ページ数の分布¶
合計ページ数の分布を見てみます.
df_tmp = \
df.groupby('datePublished')['numberOfPages'].first().reset_index()
fig = px.histogram(df_tmp, x='numberOfPages')
show_fig(fig)